<template>
  <div class="app-container">
    <!-- Header 区域 -->
    <cart-header></cart-header>

    <!-- 商品 Item 项组件 -->
    <!-- 父传子 -->
    <cart-item :item="item" v-for="item in list" :key="item.id"></cart-item>

    <!-- Foote 区域 -->
    <cart-footer :list="list"></cart-footer>
  </div>
</template>

<script>
import CartHeader from '@/components/cart-header.vue'
import CartFooter from '@/components/cart-footer.vue'
import CartItem from '@/components/cart-item.vue'
// 1. 引入辅助函数
import { mapState } from 'vuex'

export default {
  name: 'App',
  components: {
    CartHeader,
    CartFooter,
    CartItem
  },
  created () {
    // 调用 cart 模块下的 getCarts 方法
    this.$store.dispatch('cart/getCarts')
  },
  computed: {
    // 2. 调用辅助函数并展开结果
    // 注意: 要传入模块名
    ...mapState('cart', ['list'])
  }
}
</script>

<style lang="less" scoped>
.app-container {
  padding: 50px 0;
  font-size: 14px;
}
</style>
